문제 설명

핵심 풀이 코드

Brute Force

#include <iostream>
#include 
 
using namespace std;
 
class Solution{
public:
	vector<int> twoSum(vector<int>& nums, int target) {
		int find = 0;
		
		for(int i = 0; i < num.size(); i++) {
			find = target - nums[i];
			
			for(int j = i+1; j < nums.size(); j++) {
				if(find == nums[j]) {
					return {i, j};
				}
			}
		}
		
		// debuging
		return {-1, -1};
	}
};

HashCode - 속도가 제일 빠른 코드

#include <iostream>
 
class Solution {
public: 
	vector<int> twoSum(vector<int>& nums, int target) { 
		unordered_map<int, int> seen; 
		const int n = static_cast<int>(nums.size()); 
		
		for(int i = 0; i < n; i++) { 
			const int complement = target - nums[i]; 
			auto it = seen.find(complement); 
			if(it != seen.end()) { 
				return {it->second, i}; 
			} 
			
			seen[nums[i]] = i; 
		} 
		
		return {-1, -1}; 
	} 
};

- 메모리 효율성이 제일 좋은 코드

Type/Paste Your Code